Salve a tutti,
avrei la necessità di inviare alcune email senza dovermi appoggiare ad un client specifico.
Ho pensato quindi di utilizzare le librerie Indy. In giro per la rete ho trovato decine di procedure per inviare email con allegati, ma non sono riuscito a farne funzionare una.
Premetto che il mio provider è TeleTu e che con Outlook Express non ho nessun problema per l'invio.
I parametri richiesti sono:
Host smtp: smtp.teletu.it
Porta: 587 (provata anche la 25)
autenticazione del server necessaria: SI
Il server necessita di una connessione protetta (SSL): SI
Con il codice sottoriportato mi viene rilevato il seguente errore:
'Error connecting with SSL'.
Qualcuno saprebbe dirmi come risolvere il problema.
Grazie.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, IdMessage, IdIOHandler, IdIOHandlerSocket,
IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdMessageClient, IdSMTP, Buttons;
type
TForm1 = class(TForm)
IdSMTP1: TIdSMTP;
IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket;
IdMessage1: TIdMessage;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
idSMTP1.Host := 'smtp.teletu.it ;
idSMTP1.Port := 587;
idSMTP1.Username := 'username' ;
idSMTP1.Password := 'password';
//From
idMessage1.From.Address := 'xxx@teletu.it';
//To
idMessage1.Recipients.EMailAddresses := 'yyy@teletu.it';
//Oggetto
idMessage1.Subject := 'Oggetto email';
//Testo
idMessage1.Body.Text := 'Testo email';
// Prova invio
IdSMTP1.Connect();
try
IdSMTP1.Send(IdMessage1);
finally
IdSMTP1.Disconnect;
end;
end;
end.
Con i seguenti settaggi:
IdSMTP1.IOHandeler:=IdSSLIOHandlerSocket1;
IdSMTP1.MaxLineAction:=maException;
IdSMTP1.SSLOptions.Method:=sslvSSLv2; (provato anche sslvTLSv1)
IdSMTP1.SSLOptions.Mode:=sslmUnassigned;
|